'''
类方法有参数self和没self

如果定义了一个没有 self 参数的类方法，那么就无法在该方法中访问或修改当前对象的状态，因为没有任何方式可以引用调用该方法的对象。
这种情况下，该方法只能够访问静态变量或者全局变量等无需引用对象状态的数据。

在下面的示例代码中，我们定义了一个名为 MyClass 的类，并且分别定义了两个类方法 method1 和 method2。
其中，method1 带有一个 self 参数，可以访问对象的属性；而 method2 则没有 self 参数，只能够访问类的静态变量。

在调用类方法时，如果是调用带有 self 参数的类方法，则需要先创建该类的一个实例，并且通过该实例来调用方法。
而如果是调用不带 self 参数的类方法，则可以直接通过类名来调用该方法，无需创建任何对象。
'''


class MyClass:

    def method1(self, x):
        # 访问对象的属性
        self.x = x

    @classmethod
    def method2(cls, y):
        # 访问类的静态变量
        cls.y = y


# 创建对象
obj = MyClass()

# 调用带有 self 参数的类方法
obj.method1(10)

# 调用不带 self 参数的类方法
MyClass.method2(20)
